<?php
class Pedidos extends CI_Controller {
    public function __construct() {
        parent::__construct();
        $this->load->library(
                array(
                    'session',
                    'r_session',
                    'form_validation',
                    'r_currency'
                ));
        $this->load->helper(
                array(
                    'url'
                ));
        $this->load->model(
                array(
                    'pedidos_model',
                    'clientes_model',
                    'monedas_model',
                    'articulos_model',
                    'productos_model',
                    'marcas_model',
                    'proveedores_model',
                    'consultas_model'
                ));
        $this->r_session->check($this->session->all_userdata());
    }
    
    public function agregar() {
        $session = $this->session->all_userdata();
        $session['title'] = 'Agregar Pedido';
        
        $data['clientes'] = $this->clientes_model->get_clientes();
        $data['monedas'] = $this->monedas_model->get_monedas();
         
        $this->form_validation->set_rules('pedido', 'N° de Pedido', 'integer|required');
        
        if($this->form_validation->run() == FALSE) {
            
        } else {
            $datos = array(
                'idPedidos' => $this->input->post('pedido'),
                'idCliente' => $this->input->post('cliente'),
                'ordenDeCompra' => $this->input->post('orden'),
                'idMoneda' => $this->input->post('moneda')
            );
            
            $idpedido = $this->pedidos_model->set_pedido($datos);
            
            redirect('/pedidos/agregar_items/'.$idpedido.'/', 'refresh');
        }
        
        $this->load->view('layout/header', $session);
        $this->load->view('pedidos/agregar', $data);
        $this->load->view('layout/footer');
    }
    
    public function agregar_items($idpedido) {
        $session = $this->session->all_userdata();
        $session['title'] = 'Agregar items al Pedido';
        
        $data['pedido'] = $this->pedidos_model->get_pedido_por_id($idpedido);
        $data['cliente'] = $this->clientes_model->get_cliente_por_id($data['pedido']['idCliente']);
        $data['moneda'] = $this->monedas_model->get_moneda_por_id($data['pedido']['idMoneda']);
        $data['articulos'] = $this->articulos_model->get_articulos();
        
        foreach ($data['articulos'] as $key => $value) {
            $data['articulos'][$key]['producto'] = $this->productos_model->get_producto_por_id($value['idProducto']);
            $data['articulos'][$key]['marca'] = $this->marcas_model->get_marca_por_id($value['idMarca']);
        }
        
        $this->form_validation->set_rules('cantidad', 'Cantidad', 'integer|required');
        $this->form_validation->set_rules('precio', 'Precio', 'numeric|required');
        $this->form_validation->set_rules('fecha', 'Fecha', 'required');
        
        if($this->form_validation->run() == FALSE) {
            
        } else {
            $datos = array(
                'cantidad' => $this->input->post('cantidad'),
                'idArticulo' => $this->input->post('articulo'),
                'precio' => $this->input->post('precio'),
                'fechaEntrega' => $this->input->post('fecha'),
                'idPedido' => $idpedido,
                'pendiente' => 1
            );
            
            $this->pedidos_model->set_item_a_pedido($datos);
            
        }
        
        $data['items'] = $this->pedidos_model->get_items_de_un_pedido($idpedido);
        foreach($data['items'] as $key => $value) {
            $data['items'][$key]['articulo'] = $this->articulos_model->get_articulo_por_id($value['idArticulo']);
        }
        
        $this->load->view('layout/header', $session);
        $this->load->view('pedidos/agregar_items', $data);
        $this->load->view('layout/footer');
    }
    
    public function pendientes() {
        $session = $this->session->all_userdata();
        $session['title'] = 'Pedidos Pendientes';
        
        $data['pedidos'] = $this->pedidos_model->get_pedidos_pendientes();
        foreach($data['pedidos'] as $key => $value) {
            $data['pedidos'][$key]['cliente'] = $this->clientes_model->get_cliente_por_id($value['idCliente']);
            $data['pedidos'][$key]['items'] = $this->pedidos_model->get_items_pendientes_por_pedido($value['idPedidos']);
            foreach($data['pedidos'][$key]['items'] as $key2 => $value2) {
                $data['pedidos'][$key]['items'][$key2]['articulo'] = $this->articulos_model->get_articulo_por_id($value2['idArticulo']);
                $data['pedidos'][$key]['items'][$key2]['articulo']['marca'] = $this->marcas_model->get_marca_por_id($data['pedidos'][$key]['items'][$key2]['articulo']['idMarca']);
                $data['pedidos'][$key]['moneda'] = $this->monedas_model->get_moneda_por_id($data['pedidos'][$key]['idMoneda']);
                $data['pedidos'][$key]['items'][$key2]['consultas'] = $this->consultas_model->get_cantidad_de_consultas_por_articulo($value2['idArticulo']);
            }
        }
        
        
        $this->load->view('layout/header', $session);
        $this->load->view('pedidos/pendientes', $data);
        $this->load->view('layout/footer');
        
    }
    
    public function pendientes_por_proveedor() {
        $session = $this->session->all_userdata();
        $session['title'] = 'Pedidos Pendientes Por Proveedor';
        
        $data['proveedores'] = $this->proveedores_model->get_proveedores_con_pedidos_pendientes();
        foreach ($data['proveedores'] as $key => $value) {
            $data['proveedores'][$key]['items'] = $this->pedidos_model->get_items_pendientes_por_proveedor($value['idProveedor']);
            foreach($data['proveedores'][$key]['items'] as $key2 => $value2) {
                //$data['proveedores'][$key]['items'][$key2]['currency'] = $this->r_currency->get_dolares($value2['precio'], $value2['currency']);
                $data['proveedores'][$key]['items'][$key2]['currency'] = $value2['precio'] * $this->r_currency->get_cambio($value2['currency']);
                $data['proveedores'][$key]['items'][$key2]['consultas'] = $this->consultas_model->get_items_por_articulo($value2['idarticulo']);
                $data['proveedores'][$key]['items'][$key2]['consultas'] = count($data['proveedores'][$key]['items'][$key2]['consultas']);
            }
        }
        
        $this->load->view('layout/header', $session);
        $this->load->view('pedidos/pendientes_por_proveedor', $data);
        $this->load->view('layout/footer');
    }
    
    public function eliminar($idpedido, $segmento) {
        
        $this->pedidos_model->borrar_pedido_cascada($idpedido);
        
        redirect('/pedidos/'.$segmento.'/', 'refresh');
    }
}
?>
